#include<iostream>
#include<algorithm>

using namespace std;
const int N=100;

int q[N],tmp[N],q1[N],q_temp[N];
int n;
int flag=0;

bool equal(int a[],int b[],int len){
	int k=0;
	for(int i=0;i<len;i++){
		if(a[i]==b[i]) k++;
	}
	return k==len?1:0;
}
void merge_sort(int q[]){
	for(int i=2;i/2<n;i=i*2){
		for(int j=0;j<n;j=j+i){
			sort(q+j,q+min(n,j+i));
		}
		if(flag){for(int i=0;i<n;i++)cout<<q[i]<<" ";
		break;}
		if(equal(q,q1,n)){
			cout<<"Merge Sort"<<endl;
			flag=1;
		}
	}

}
void insert_sort(int arr[]){
	for(int i=1;i<n;i++){
		int j=i-1;
		int key=arr[i];
		while((j>=0)&&(key<arr[j])){
			arr[j+1]=arr[j];
			j--;
		}
		arr[j+1]=key;
		if(flag){for(int i=0;i<n;i++)cout<<arr[i]<<" ";
			break;}
		if(equal(arr,q1,n)){
			cout<<"Insertion Sort"<<endl;
			flag=1;
		}
	}
}


int main(){
	freopen("input.txt","r",stdin);
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>q[i];
		q_temp[i]=q[i];
	}
	for(int i=0;i<n;i++){
		cin>>q1[i];
	}
	insert_sort(q_temp);
	if(!flag)merge_sort(q);

	return 0;

}